package cn.yh.shop.product.service;

import org.springframework.stereotype.Service;

import cn.yh.shop.product.model.Cart;
import cn.yh.shop.product.model.CartItem;

/**
 * @Description:购物车服务层接口
 * @author:"李战召"
 * @time:2016年12月16日 上午10:21:30
 */
@Service
public interface ICartService {
	/**
	 * @Description:从redis数据库中根据用户id,查询到该用户下的购物车信息
	 * @param userid 用户id
	 * @return Cart
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月16日 上午10:21:55
	 */
	public  Cart getCart(Integer userid);
	/**
	 * @Description:更改购物车中的商品项
	 * @param userid 用户id
	 * @param goodsid 商品id
	 * @return Cart
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月16日 上午10:23:49
	 */
	public  Cart updateCart(Integer userid,CartItem cartItem);
	/**
	 * @Description:删除购物车中的商品项
	 * @param userid 用户id
	 * @param CartItem 商品项
	 * @return Cart
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月16日 上午10:23:49
	 */
	public  Cart delCart(Integer userid,CartItem cartItem);
	/**
	 * @Description:增加购物车商品项,返回添加的状态 0:表示不成功,1表示成功
	 * @param userid 用户id
	 * @param goodsid 商品id
	 * @return
	 * CartItem
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月19日 上午11:14:12
	 */
	public  int addCart(Integer userid,CartItem cartItem); 
	/**
	 * @Description:直接通过cartItem得到商品项
	 * @param userid
	 * @param goodsids
	 * @return
	 * CartItem
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月20日 下午7:07:09
	 */
	public  CartItem getCartItem(Integer userid,CartItem cartItem); 
	/**
	 * @Description:直接通过goodsids得到商品项(此方法用于多个操作或者删除时候)
	 * @param userid
	 * @param goodsids
	 * @return
	 * CartItem
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月20日 下午7:07:09
	 */
	public  CartItem getCartItem(Integer userid,String goodsids); 
	/**
	 * @Description:得到购物车中被选中的商品
	 * @param userid
	 * @return
	 * Cart
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月19日 下午2:04:30
	 */
	public  Cart getCartByChecked(Integer userid);
}
